/**
 * 应用程序根组件
 * 负责配置全局状态管理和路由系统
 * 
 * 功能说明：
 * - 使用Redux Provider提供全局状态管理
 * - 使用PersistGate实现状态持久化
 * - 集成路由系统管理页面导航
 * 
 * @author 项目开发团队
 * @version 1.0.0
 */

import React from 'react'
import { Provider } from 'react-redux'
import { PersistGate } from 'redux-persist/integration/react'
import { store, persistor } from './store'
import AppRouter from './router'

/**
 * 应用程序根组件
 * @returns {JSX.Element} 应用根组件
 */
function App() {
  return (
    // Redux Provider: 为整个应用提供Redux store
    // 使所有子组件都能通过useSelector和useDispatch访问状态
    <Provider store={store}>
      {/* PersistGate: 状态持久化组件
          - 在应用启动时从localStorage恢复状态
          - loading为null表示不显示加载状态
          - 确保状态恢复完成后再渲染子组件 */}
      <PersistGate loading={null} persistor={persistor}>
        {/* 路由组件：管理整个应用的路由和页面切换 */}
        <AppRouter />
      </PersistGate>
    </Provider>
  )
}

export default App
